package com.wande.dataplatform.service;

import com.wande.common.mybatis.core.page.PageQuery;
import com.wande.common.mybatis.core.page.TableDataInfo;
import com.wande.dataplatform.domain.DataModel;
import com.wande.dataplatform.domain.DataModelVersion;
import com.wande.dataplatform.domain.dto.DataModelDTO;

import java.util.List;

/**
 * 数据模型Service接口
 *
 * @author ruoyi
 */
public interface IDataModelService {

    /**
     * 查询数据模型列表
     */
    TableDataInfo<DataModel> queryPageList(DataModel dataModel, PageQuery pageQuery);

    /**
     * 查询数据模型列表
     */
    List<DataModel> queryList(DataModel dataModel);

    /**
     * 根据ID查询数据模型
     */
    DataModel queryById(Long id);

    /**
     * 创建数据模型
     */
    Long createDataModel(DataModelDTO dto);

    /**
     * 更新数据模型
     */
    Boolean updateDataModel(DataModelDTO dto);

    /**
     * 删除数据模型
     */
    Boolean deleteById(Long id);

    /**
     * 批量删除数据模型
     */
    Boolean deleteByIds(List<Long> ids);

    /**
     * 验证数据模型
     */
    Boolean validateModel(DataModelDTO dto);

    /**
     * 同步到Doris
     */
    Boolean syncToDoris(Long id);

    /**
     * 查询模型版本历史
     */
    List<DataModelVersion> queryVersionHistory(Long modelId);

    /**
     * 启用/禁用数据模型
     */
    Boolean updateStatus(Long id, Integer status);

}
